#pragma once

#include "Camera.h"
#include "Snapshot.h"

class EulerCamera : public Camera
{
public:
	EulerCamera(DirectX::XMFLOAT3 position, DirectX::XMFLOAT3 eulerRotation);
	virtual ~EulerCamera(void);
	virtual DirectX::XMMATRIX GetViewMatrix(void);
	virtual DirectX::XMMATRIX GetCameraTransform(void);
	Snapshot GetSnapshot(void);
	void AddRotation(DirectX::XMFLOAT3 eulerRotation);
	virtual void Move(DirectX::XMFLOAT3 movement);
	void MoveRotationIndependent(DirectX::XMFLOAT3 movement);
private:
	DirectX::XMMATRIX m_GetRotationMatrix(void);

	DirectX::XMFLOAT3 m_eulerAngles;
};
